from vector_store.vector_store import VectorStoreManager

# 初始化向量存储管理器
print("初始化VectorStoreManager...")
vector_store_manager = VectorStoreManager()

# 获取所有集合
collections = vector_store_manager.get_collections()
print(f"可用集合: {collections}")

# 检查所有集合的内容
for collection_name in collections:
    print(f"\n检查集合 '{collection_name}' 的内容...")
    
    # 直接获取集合对象以检查文档数量
    try:
        collection = vector_store_manager.client.get_collection(name=collection_name)
        print(f"成功获取集合 '{collection_name}'")
        
        # 获取集合中的所有文档（限制为10个）
        all_docs = collection.get(limit=10)
        print(f"集合中的文档数量: {len(all_docs['ids'])}" if 'ids' in all_docs else "集合中没有文档")
        
        # 打印前3个文档的内容
        if 'documents' in all_docs and all_docs['documents']:
            print("\n前3个文档的内容:")
            for i, doc in enumerate(all_docs['documents'][:3]):
                print(f"\n文档 {i+1}:")
                print(f"内容: {doc[:200]}..." if len(doc) > 200 else f"内容: {doc}")
                # 打印元数据
                if 'metadatas' in all_docs and all_docs['metadatas'] and len(all_docs['metadatas']) > i:
                    print(f"元数据: {all_docs['metadatas'][i]}")
        else:
            print("集合中没有找到文档内容")
        
        # 尝试进行一次简单的搜索
        test_query = "mysql"
        print(f"\n尝试搜索 '{test_query}' 关键词...")
        search_results = vector_store_manager.search(collection_name, test_query, top_k=3)
        print(f"搜索结果数量: {len(search_results)}")
        if search_results:
            print("搜索结果:")
            for i, result in enumerate(search_results):
                print(f"\n结果 {i+1}:")
                print(f"内容: {result['content'][:200]}..." if len(result['content']) > 200 else f"内容: {result['content']}")
                print(f"分数: {result['score']}")
                print(f"元数据: {result['metadata']}")
        else:
            print("未找到相关文档")
        
    except Exception as e:
        print(f"获取集合内容时出错: {type(e).__name__}: {str(e)}")
    
    print("\n" + "="*50 + "\n")